import axios from 'axios'
import { ElMessage } from 'element-plus'
import { useUser } from '@/store/user'
import router from "@/router/index";
import { tokenout } from '@/common/tokenout'

const instance = axios.create({
    baseURL: "/api",
    timeout: 5000,
})
// 请求拦截器
instance.interceptors.request.use((config) => {
    let token = localStorage.getItem('token');
    if (token) {
        if (config.headers) {
            config.headers['Authorization'] = token
        }
    }
    return config
}, (err) => Promise.reject(err))

// 响应拦截器
instance.interceptors.response.use((response) => {
    // 请求状态码为200时进该函数
    // 请求成功,但是业务失效
    console.log(response);

    const data = response.data as IResponse<any>
    if (data.code === 401) {
        tokenout(undefined, () => {
            ElMessage.error("token过期,请重新登录")
        })
    } else if (data.code === undefined) {
        console.log("正确的,但是后台没有返回code");

    } else if (data.code !== 200) {
        ElMessage.error(data.message)
    }
    return response.data
}, (err) => {
    // 请求码非200进该函数
    // 请求失败提示
    // console.log(err);

    ElMessage.error("请求失败,错误信息" + err.message);
    //请求失败的反馈数据
    Promise.reject(err);
})

export default instance